Project Policies
Projects in this course are very flexible. The most important
requirement is that you develop a "cool" networked/distributed
application of some kind. Projects need not involve original
concepts (i.e., you don't need to come up with a novel idea).
1 Topics
Broadly speaking there are three different kinds of projects,
applications for general users, applications for system
administrators, and and libraries.
2 Collaboration
You should work on the project in a team (of your choosing).
The ideal team size is 2, but you may work in a team that has
as many as 4 people and you may work alone (if there is a good
reason for you to do so). The size of the project must be
commensurate with the size of the team.
Ideally, different members of the group should work on distinct
components. This will make it easier for you to allocate and
schedule tasks and will force you to think carefully about protocols
and system design.
3 Process
Each team must use a Scrum-like process. Most importantly, you must
use an incremental process and always have a working increment
that can be demonstrated.
4 Proposal/Initial Product Backlog
You must get your project approved in advance.
You must submit a proposal that includes: a list of team members,
a brief description of the product,
and a prioritized list of features that you intend to include in the
product. See the syllabus for due dates.
5 Materials
All code and resources must be original (i.e.,
do not plagiarize and do not infringe on any copyrights). You may
use code developed/used for lectures or assignments.
6 Platform/Environment
The product need not run on any particular operating system
or under any particular environment. However, your team will
be required to demonstrate the product (perhaps multiple times
throughout the semester). Hence, the product must run on whatever
equipment you have available for the presentation. You are required
to test your product before any demonstration to ensure that
you are able to do so.
Projects that do not satisfy this requirement will receive a
grade of 0.
7 Visibility
All projects will be publicly available on the course WWW site
(after the presentations).
8 Submissions
Groups must submit
ALL materials associated with their
projects on the "due date".
8.1 Design
Design materials must be submitted using Canvas.
8.2 Source Code
Source code must be submitted using Autolab.
All source code must be in a
.zip
file
named
project.zip
.
All code and documentation written for the final project must
conform to the course style guides. Submissions that do not
conform to the course style guide and/or the above guidelines will
not be accepted.
9 Presentations
Each team must present their project in class. Presentation
times will
NOT be announced in advance. Teams must be
prepared to present at any time during the "presentation period".
Presentations will make use of
ONLY the materials
submitted on the "due date".
Each presentation will last about 10 minutes, including setup time
and questions (though the exact length will depend on the number
of teams). "Intermediate" presentations must include a brief
description of the product and a demonstration of the working
product. Final presentations must include a brief description of
the product, a demonstration of the product, a discussion of
the design, and a discussion of any implementation issues that
arose.
Presentations must be informative (i.e., your fellow students must
learn something from your presentation, not just be entertained)!
10 Grading
Projects will be evaluated primarily based on
their technical merit (i.e., aesthetic issues will only have a
minor impact on grades). To that end, your design and
implementation should be: rugged (i.e., reliable, robust, and safe),
easy to repair and enhance, easy to understand and use, and easy to
re-use. For example, if your project is a game that
needs to display scores, a good design/implementation will include
classes that could easily be used in other games.
10.1 Presentations
While I do not require attendance in general, I do require (as
a matter of courtesy/collegiality) that all students attend
all presentations. Students who do not attend all
presentations will be penalized (i.e., their grade on the
project will be significantly reduced).
10.2 Peer Evaluations
All students must participate in the peer evaluation process.
Students who do not participate in the peer evaluation process
will receive a grade of 0 for the final project.
You will be provided with a form for evaluating you and your
team members.